Marine Propulsion Control System and Method with Collision Avoidance Override

ABSTRACT

A method of controlling propulsion of a marine vessel includes receiving proximity measurements from one or more proximity sensors on the marine vessel and limiting user input authority over propulsion output in a direction of an object by at least one propulsion device based on the proximity measurement so as to maintain the marine vessel at least a buffer distance from the object. The method further includes suspending maintenance of the buffer distance from the object in response to a user-generated instruction. Then, when user control input is received via a user input device to move the marine vessel in the direction of the object, the at least one propulsion device is controlled based on the user control input such that the marine vessel approaches and impacts the object.

FIELD

The present disclosure generally relates to propulsion control systemsand methods for controlling propulsion of a marine vessel, and morespecifically to propulsion control systems and methods that limit thevelocity of the marine vessel in a direction of an object based on theproximity of that object.

BACKGROUND

The following U.S. patents are incorporated herein by reference, inentirety:

U.S. Pat. No. 6,273,771 discloses a control system for a marine vesselthat incorporates a marine propulsion system that can be attached to amarine vessel and connected in signal communication with a serialcommunication bus and a controller. A plurality of input devices andoutput devices are also connected in signal communication with thecommunication bus and a bus access manager, such as a CAN Kingdomnetwork, is connected in signal communication with the controller toregulate the incorporation of additional devices to the plurality ofdevices in signal communication with the bus whereby the controller isconnected in signal communication with each of the plurality of deviceson the communication bus. The input and output devices can each transmitmessages to the serial communication bus for receipt by other devices.

U.S. Pat. No. 7,267,068 discloses a marine vessel that is maneuvered byindependently rotating first and second marine propulsion devices abouttheir respective steering axes in response to commands received from amanually operable control device, such as a joystick. The marinepropulsion devices are aligned with their thrust vectors intersecting ata point on a centerline of the marine vessel and, when no rotationalmovement is commanded, at the center of gravity of the marine vessel.Internal combustion engines are provided to drive the marine propulsiondevices. The steering axes of the two marine propulsion devices aregenerally vertical and parallel to each other. The two steering axesextend through a bottom surface of the hull of the marine vessel.

U.S. Pat. No. 9,927,520 discloses a method of detecting a collision ofthe marine vessel, including sensing using distance sensors to determinewhether an object is within a predefined distance of a marine vessel,and determining a direction of the object with respect to the marinevessel. The method further includes receiving a propulsion control inputat a propulsion control input device, and determining whether executionof the propulsion control input will result in any portion of the marinevessel moving toward the object. A collision warning is then generated.

U.S. Patent Application Publication No. 2017/0253314 discloses a systemfor maintaining a marine vessel in a body of water at a selectedposition and orientation, including a global positioning system thatdetermines a global position and heading of the vessel and a proximitysensor that determines a relative position and bearing of the vesselwith respect to an object near the vessel. A controller operable in astation-keeping mode is in signal communication with the GPS and theproximity sensor. The controller chooses between using global positionand heading data from the GPS and relative position and bearing datafrom the proximity sensor to determine if the vessel has moved from theselected position and orientation. The controller calculates thrustcommands required to return the vessel to the selected position andorientation and outputs the thrust commands to a marine propulsionsystem, which uses the thrust commands to reposition the vessel.

U.S. Patent Application Publication No. 2018/0057132 discloses a methodfor controlling movement of a marine vessel near an object, includingaccepting a signal representing a desired movement of the marine vesselfrom a joystick. A sensor senses a shortest distance between the objectand the marine vessel and a direction of the object with respect to themarine vessel. A controller compares the desired movement of the marinevessel with the shortest distance and the direction. Based on thecomparison, the controller selects whether to command the marinepropulsion system to generate thrust to achieve the desired movement, oralternatively whether to command the marine propulsion system togenerate thrust to achieve a modified movement that ensures the marinevessel maintains at least a predetermined range from the object. Themarine propulsion system then generates thrust to achieve the desiredmovement or the modified movement, as commanded.

U.S. Pat. No. 10,429,845 discloses a marine vessel is powered by amarine propulsion system and movable with respect to first, second, andthird axes that are perpendicular to one another and define at least sixdegrees of freedom of potential vessel movement. A method forcontrolling a position of the marine vessel near a target locationincludes measuring a present location of the marine vessel, and based onthe vessel's present location, determining if the marine vessel iswithin a predetermined range of the target location. The method includesdetermining marine vessel movements that are required to translate themarine vessel from the present location to the target location. Inresponse to the marine vessel being within the predetermined range ofthe target location, the method includes automatically controlling thepropulsion system to produce components of the required marine vesselmovements one degree of freedom at a time during a given iteration ofcontrol.

SUMMARY

This Summary is provided to introduce a selection of concepts that arefurther described below in the Detailed Description. This Summary is notintended to identify key or essential features of the claimed subjectmatter, nor is it intended to be used as an aid in limiting the scope ofthe claimed subject matter.

One embodiment of a method of controlling propulsion of a marine vesselincludes receiving proximity measurements from one or more proximitysensors on the marine vessel and limiting user input authority overpropulsion output in a direction of an object by at least one propulsiondevice based on the proximity measurement so as to maintain the marinevessel at least a buffer distance from the object. The method furtherincludes suspending maintenance of the buffer distance from the objectin response to a user-generated instruction. Then, when user controlinput is receive via a user input device to move the marine vessel inthe direction of the object, the at least one propulsion device iscontrolled based on the user control input such that the marine vesselapproaches and impacts the object.

One embodiment of a propulsion control system on a marine vesselincludes at least one propulsion device configured to propel the marinevessel, at least one input device manipulatable to provide user controlinput to control a movement direction and velocity of the marine vessel,at least one proximity sensor system configured to generate proximitymeasurements describing a proximity of an object with respect to themarine vessel, and a controller. The controller is configured to limituser input authority over propulsion output in a direction of the objectby at least one propulsion device based on the proximity measurement soas to maintain the marine vessel at least a buffer distance from theobject, and then to suspend the maintenance of the buffer distance fromthe object upon receipt of a user-generated instruction to do so. Uponreceipt of a user control input via the user input device to move themarine vessel in the direction of the object, the controller controlsthe at least one propulsion device based on the user control input suchthat the marine vessel approaches and impacts the object. In certainembodiments, the controller is configured to limit the user inputauthority over propulsion output in the direction of the object as themarine vessel approaches and impacts the object, wherein limiting theuser input authority in the direction of the object includes imposing avelocity limit in the direction of the object based on the proximitymeasurement and the buffer distance value.

Various other features, objects, and advantages of the invention will bemade apparent from the following description taken together with thedrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is described with reference to the followingFigures.

FIG. 1 is a schematic representation of an exemplary propulsion systemon a marine vessel.

FIG. 2 schematically illustrates one implementation of a buffer distancemaintained between a marine vessel and an object according to oneembodiment of the present disclosure.

FIGS. 3A and 3B are graphs showing exemplary velocity limit ranges foran exemplary buffer distance of 1.5 meters.

FIG. 4 is a diagram illustrating an exemplary calculation of a mostimportant object (MIO) dataset identifying closest proximitymeasurements.

FIG. 5A illustrates an exemplary scenario where velocity limits arecalculated in the direction of each of multiple objects.

FIG. 5B illustrates an exemplary modified buffer zone used to imposevelocity limits that permit the marine vessel to approach and impact anobject.

FIG. 6 is a flowchart exemplifying velocity limit calculations accordingto one embodiment of the disclosure.

FIG. 7 is a flowchart exemplifying calculation of a velocity command ina direction of an object based on a velocity limit.

FIG. 8 illustrates an offset and rescale of a joystick user inputdevice.

DETAILED DESCRIPTION

FIG. 1 shows a marine vessel 10 equipped with a propulsion controlsystem 20 on a marine vessel 10 configured according to one embodimentof the disclosure. The propulsion control system 20 is capable ofoperating, for example, in a joysticking mode where a joystick isoperated by an operator to control vessel movement within an x/y plane,among other modes, as described hereinbelow. The propulsion system 20has first and second propulsion devices 12 a, 12 b that produce firstand second thrusts T1, T2 to propel the vessel 10. The first and secondpropulsion devices 12 a, 12 b are illustrated as outboard motors, butthey could alternatively be inboard motors, stern drives, jet drives, orpod drives. Each propulsion device is provided with an engine 14 a, 14 boperatively connected to a transmission 16 a, 16 b, in turn, operativelyconnected to a propeller 18 a, 18 b.

The vessel 10 also houses various control elements that comprise part ofthe propulsion control system 20. The system 20 comprises an operationconsole 22 in signal communication, for example via a CAN bus asdescribed in U.S. Pat. No. 6,273,771, with a controller 24, such as forexample a command control module (CCM), and with propulsion controlmodules (PCM) 26 a, 26 b associated with the respective propulsiondevices 12 a, 12 b. Each of the controller 24 and the PCMs 26 a, 26 bmay include a memory and a programmable processor. As is conventional,each controller 24, 26 a, 26 b includes a processor communicativelyconnected to a storage system comprising a computer-readable medium thatincludes volatile or nonvolatile memory upon which computer readablecode and data is stored. The processor can access the computer readablecode and, upon executing the code, carry out functions, such as thenavigation control functions and/or the proximity sensing functions, asdescribed in detail below.

The operation console 22 includes a number of user input devices, suchas a keypad 28, a joystick 30, a steering wheel 32, and one or morethrottle/shift levers 34. The operation console 22 may further include adisplay 29, such as may be associated with an onboard management system,that is configured to visually present information to the operator(e.g., information regarding control mode, control settings), presentcontrol options to the operator, and receive user input from theoperator in response to the control options. One example of such adisplay system is VesselView by Mercury Marine Company of Fond du Lac,Wis. Each of these devices inputs commands to the controller 24. Thecontroller 24, in turn, communicates control instructions to the firstand second propulsion devices 12 a, 12 b by communicating with the PCMs26 a, 26 b. The steering wheel 32 and the throttle/shift levers 34function in a conventional manner such that rotation of the steeringwheel 32, for example, activates a transducer that provides a signal tothe controller 24 regarding a desired direction of the vessel 10. Thecontroller 24, in turn, sends signals to the PCMs 26 a, 26 b (and/orTVMs or additional modules if provided), which in turn activate steeringactuators to achieve desired orientations of the propulsion devices 12a, 12 b. The propulsion devices 12 a, 12 b are independently steerableabout their steering axes. The throttle/shift levers 34 send signals tothe controller 24 regarding the desired gear (forward, reverse, orneutral) of the transmissions 16 a, 16 b and the desired rotationalspeed of the engines 14 a, 14 b of the propulsion devices 12 a, 12 b.The controller 24, in turn, sends signals to the PCMs 26 a, 26 b, whichin turn activate electromechanical actuators in the transmissions 16 a,16 b and engines 14 a, 14 b for shift and throttle, respectively. Amanually operable input device, such as the joystick 30, can also beused to provide control input signals to the controller 24. The joystick30 can be used to allow the operator of the vessel 10 to manuallymaneuver the vessel 10, such as to achieve lateral translation orrotation of the vessel 10.

The propulsion control system 20 also includes one or more proximitysensors 72, 74, 76, and 78. Although one proximity sensor is shown oneach of the bow, stern, port and starboard sides of the vessel 10, feweror more sensors could be provided at each location and/or provided atother locations, such as on the hardtop of the vessel 10. The proximitysensors 72-78 are distance and directional sensors. For example, thesensors could be radars, sonars, cameras, lasers (e.g. lidars orLeddars), Doppler direction finders, or other devices individuallycapable of determining both the distance and direction (at leastapproximately), i.e. the relative position of an object O with respectto the vessel 10, such as a dock, a seawall, a slip, another vessel, alarge rock or tree, etc. The sensors 72-78 provide information regardingboth a direction of the object with respect to the marine vessel 10 anda shortest distance between the object O and the vessel 10.Alternatively, separate sensors could be provided for sensing directionthan are provided for sensing distance, or more than one type ofdistance/direction sensor can be provided at a single location on thevessel 10. The sensors 72-78 provide this distance and/or directioninformation to one or more controllers, such as to the sensor processor70 and/or the CCM 24, such as by way of a dedicated bus connecting thesensors to a controller, a CAN bus, or wireless network transmissions,as described in more detail below.

Regarding the proximity sensors, 72, 74, 76, 78, note that differenttypes of sensors may be used depending on the distance between thevessel 10 and the object O. For example, radar sensors may be used todetect objects at further distances. Once the vessel 10 comes within aparticular distance of the object, lidar, ultrasonic, Leddar, or sonarsensors may instead be used. Camera sensors may be used, alone or incombination with any of the sensors mentioned above, in order to provideobject proximity information to the CCM 24. Sensors are placed atpositions on the vessel 10 so that they are at the correct height andfacing direction to detect objects the vessel 10 is likely to encounter.Optimal sensor positions will vary depending on vessel size andconfiguration.

In FIG. 1, the proximity sensors are positioned at each of the front,sides, and stern of the vessel 10, and include front-facing sensor 72,starboard-facing sensor 74, rear-facing sensor 76, and port-facingsensor 78. In a different exemplary sensor arrangement, two proximitysensors may be placed on the hard top of the marine vessel 10 andarranged such that the fields of view of the two sensors, combined,cover the entire 360° area surrounding the vessel 10. Note also that therelevant controller, such as the sensor processor 70, may selectivelyoperate any one or more of a plurality of sensors (including radars,lidars, Leddars, ultrasonics, and cameras) to sense the shortestdistance and the direction of the object with respect to the vessel 10.Alternatively, the sensor processor may use all available sensor datafrom all sensor types, which may be reviewed real time as it is receivedor may be formulated into one or more maps or occupancy gridsintegrating all proximity measurement data, where the mapped data fromall the operated sensors is processed as described herein. In such anembodiment, the proximity measurements from each of the various sensorsare all translated into a common reference frame.

Autonomous and/or advanced operator assistance (i.e., semi-autonomous)controls for improved vessel handling qualities requires placement ofmultiple proximity sensors on the vessel 10. In general, these varioustypes of proximity sensing devices (examples described above) arepositioned to detect the presence of objects in the marine environmentsurrounding the marine vessel 10, such as a dock, swimmer, or otherobstruction in the path of the vessel. Each sensor reports proximityrelative to its own frame of reference—i.e. the distance from the sensorto the object as measured along the view angle of the sensor. Dependingon the type of sensor, the application of use, boat size, hull shape,etc., multiple sensor types and sensor locations may be required toprovide adequate proximity sensing around the marine vessel 10 foroperation in all marine environments. To create a cohesive dataset thatcan be used for purposes of vessel control and vessel navigation,including autonomous vessel navigation and semi-autonomous control (suchas automatic maneuver-limiting control), all of the data sources arepreferably translated to a common reference frame. This requires preciseknowledge of the location and orientation of each sensor relative to thecommon reference frame such that the data measured therefrom can betranslated appropriately.

In the example of FIG. 1, a main inertial measurement unit (IMU) 36 isinstalled at a known location on the marine vessel with respect to apredefined point of navigation, such as the center of rotation (COR) orcenter of gravity (COG). The installation orientation or the main IMU 36is also known. The installation locations of the main IMU 36 and eachproximity sensor 72-78 are established as part of a calibrationprocedure for the proximity sensing system.

Referencing the example in FIG. 1, the main IMU 36 may be part of aninertial navigation system (INS) such as including one or moremicro-electro-mechanical systems (MEMS). For example, the INS 60 mayconsist of a MEMS angular rate sensor, such as a rate gyro, a MEMSaccelerometer, and a magnetometer. Such INS systems are well known inthe relevant art. In other embodiments, the motion and angular position(including pitch, roll, and yaw) may be sensed by a differentlyconfigured INS 60, or by an attitude heading reference system (AHRS)that provides 3D orientation of the marine vessel 10 by integratinggyroscopic measurements, accelerometer data, and magnetometer data.

The INS 60 receives orientation information from the main IMU 36 and mayalso receive information from a GPS receiver 40 comprising part of aglobal positioning system (GPS). The GPS receiver 40 is located at apre-selected fixed position on the vessel 10, which provides informationrelated to global position of the marine vessel 10. The main IMU 36 isalso located at a known and fixed position with respect to the center ofnavigation determined for the marine vessel 10, such as the COR or COG.

In FIG. 1 an IMU 62-68 is co-located with each proximity sensor 72-78.These sensor IMUs 62-68 may be configured similarly to the main IMU,such as each comprising a rate gyro, an accelerometer, and amagnetometer and producing corresponding IMU data. The IMU data fromeach sensor IMU 62-68 may be used for various purposes, such as forautomatic calibration and verification of the proximity sensor system,for angular measurements used to interpret the proximity measurements bythe relevant proximity sensor 72-78, and/or as backup IMUs in case offault or failure of the main IMU 36.

The inventors have recognized unique problems presented by autonomousand semi-autonomous vessel control systems for operating in marineenvironments where marine vessels have additional degrees of freedom ofmovement compared to automotive applications—for example, they caneffectuate only lateral and yaw movement without any forward or reversemovement (e.g., in a joysticking mode). Additionally, marineenvironments pose unique external environmental factors acting on themarine vessel, such as current, wind, waves, or the like. The presentinventors have recognized that autonomous and semi-autonomous controlsystems for marine vessels need to be “aware” of relevant vesselacceleration limits to avoid colliding with obstacles. By knowing theacceleration limit, and by having an awareness of the distance range toobstacles, the control system can determine a maximum vessel velocitythat can be realized where the control system has the ability to avoidcolliding with known obstacles. The acceleration limit is the maximumacceleration a vessel can reach for both speeding up and slowing down,where maximum deceleration of a marine vessel is accomplished byeffectuating a maximum acceleration in the opposite direction.

The inventors have recognized that the above-mentioned operationalchallenges posed by a marine environment can be effectively dealt withby establishing and maintaining a buffer distance around the marinevessel, where the control authority provided to an operator is limitedbased on the buffer distance. For example, the propulsion control systemmay continuously calculate a maximum velocity, or velocity limit, forthe marine vessel as it approaches an object O, and may limit anoperator's authority in controlling propulsion of the marine vessel 10such that the propulsion system will not effectuate a thrust that willcause the marine vessel to travel toward the object at a velocity thatis greater than the velocity limit. Thus, the propulsion system does notrespond to, or carry out, commands that would cause the vessel toviolate the buffer distance and venture too close to an object. Incertain embodiments, the propulsion control system may be configured toautomatically maintain a predetermined buffer distance between themarine vessel 10 and an object O, such as to automatically effectuatepropulsion controls in order to force the marine vessel 10 away from amarine object O when the buffer zone is violated.

FIG. 2 is a diagram exemplifying this concept, where the marine vessel10 is maintained at least the predetermined buffer distance 50 from theobject O. A buffer zone 51 around the marine vessel 10 is defined, andvelocity limits are calculated in order to progressively decrease thevessel velocity as it approaches the preset buffer distance 50 from theobject O. In the depicted embodiment, the buffer zone 51 is establishedat a preset buffer distance 50 that is equal around all sides of themarine vessel. In certain embodiments, the buffer zone 51 may beasymmetrical with respect to the marine vessel, such as to provide agreater buffer distance 50 a at the front side of the marine vessel thanthe buffer distance 50 b on the rear side of the marine vessel.Similarly, a buffer distance on the starboard and port sides of themarine vessel 10 may be set the same or different than the front andrear buffer distances 50 a, 50 b.

The inventors have further recognized that maintenance of the bufferzone is not always desired or practical, such as when passengers aregetting on and off the marine vessel. Through their experimentation andresearch, the inventors have recognized that maintenance of a minimumbuffer distance between the marine vessel and an object, such as a dock,for instance, does not necessarily position the marine vessel well forpassengers to disembark safely from a marine vessel. Depending on thevessel shape and the dock shape, holding a vessel parallel to the dockwill not necessarily get passengers close enough to disembark safely andeasily from the marine vessel. Moreover, holding the marine vesselsteady at precisely the minimum buffer distance can be quite challengingor even impossible. Marine environmental factors and conditions, such asin heavy wind and waves, can inflict unpredictable forces affectingvessel movement. Moreover, many proximity sensing systems have minimumdetection distances that fall short of the minimum distance for safedisembarking, and control systems implementing such proximity sensorscannot reliably hold the marine vessel at a minimum distance that isless than their minimum reliable detection capabilities.

In view of their recognition of the foregoing challenges and problems,the inventors have developed the disclosed docking system that limits anoperator's authority to control propulsion of the marine vessel in thedirection of the object so as to provide a controlled approach andimpact to an object, such as a dock. The disclosed control systemmodifies or disables collision avoidance algorithms, such as thevelocity limiting and autonomous buffer maintenance controls, uponreceipt of a user-generated instruction to suspend the maintenance ofthe buffer distance from the object. The control system remainsresponsive to user control inputs via a user input device, such as ajoystick, to move the marine vessel in the direction of the object so asto provide a smooth and controlled impact between the marine vessel andthe object, and/or to hold the marine vessel against the object, such aswhile passengers disembark. The user control, such as via the joystick30, remains intuitive during the velocity limited control modality. Forexample, the limited user input authority provided via the joystick maybe implemented by rescaling and/or offsetting the propulsion commandsassociated with the joystick positions. For example, the user controlinput provided by the joystick may be rescaled, such as to 20% of thenormal propulsion instruction. Thereby, the operator's authority islimited to 20% of the normal authority while the marine vessel isoperating within the buffer zone. In another embodiment, an offset maybe applied to the user control input from the joystick such that nopropulsion output is generated for a portion of the joystick range, suchas the first 50% of the joystick range or the first 80% of the joystickrange. Thereby, the operator recognizes a change in the responsivenessof the user input device and intuitively understands that the controlfunctions associated with the joystick are modified.

The autonomous or semi-autonomous control algorithms, such aseffectuated by the controller 24 include velocity control softwareperforming algorithms to calculate a maximum velocity for the marinevessel 10 as it approaches an object O and effectuates velocity limitsaccordingly. In one embodiment, the velocity limits may be calculatedbased on a known maximum acceleration for the marine vessel. The maximumacceleration for the marine vessel may be based on the maximum vesselcapabilities, such as the maximum positive or negative acceleration thatcan be effectuated by the propulsion system on the marine vessel 10 inthe relevant direction of travel. Alternatively or additionally, themaximum acceleration for the marine vessel 10 may be predetermined, suchas based on handling, comfort, or safety metrics.

The velocity limit, then, may be calculated based on that knownacceleration limit based on the distance of an object O from the marinevessel 10, accounting for the buffer distance 50. Given thatacceleration is the derivative of velocity, the relationship between amaximum acceleration for the marine vessel and a maximum velocity withrespect to a distance to an object can be provided according to thefollowing:

$a_{{ma}\; x} = \frac{v_{{ma}\; x} - v_{final}}{\Delta \; {r/v_{{ma}\; x}}}$

wherein Δr is the allowable range to an object, which will be themeasured distance to an object minus the predetermined buffer distance,and wherein a_(max) is the known maximum acceleration for the marinevessel, and wherein v_(final) is the velocity reached at the point wherethe object O hits the butter zone 51 and where v_(max) is the maximumvelocity. Assuming that v_(final) equals zero, the equation can berearranged to solve for the maximum velocity in the direction of theobject Δr that guarantees the ability to stop without exceeding a_(max).Accordingly, v_(max) can be calculated as:

v _(max)=√{square root over (Δra _(max))}

Imaginary numbers can be avoided by using the absolute value of the rootfunction before calculating, such as by using the signum function of thecontents of the root function to identify the direction of the maximumvelocity. Thus, v_(max) can be represented as the following:

v _(max)=sgn(Δra _(max))√{square root over (|Δra _(max)|)}

FIGS. 3A and 3B are graphs depicting velocity limit with respect toobject distance for exemplary control scenarios where the preset bufferdistance 50 around the marine vessel 10 is 1.5 meters. The velocitylimit 53 decreases as the marine vessel 10 approaches the object O. Whenthe marine vessel is 15 meters from the object O, for example, thevelocity limit 53 in the direction of the object O is at a maximum of0.8 m/s, and that velocity limit decreases as the marine vessel 10 movestowards the object O such that the velocity limit is zero when themarine vessel is at the buffer distance 50 of 1.5 meters from object O.Thus, inside the buffer zone 51, the operator does not have authority,such as via the joystick or other steering and thrust input device, tomove the marine vessel 10 closer to the object. Accordingly, no thrustwill be provided in the direction of the object O if the marine vesselis less than or equal to the preset buffer distance 50 from the objectO, even if the operator provides input (such as via the joystick 30)instructing movement in the direction of the object O.

In the embodiment represented at FIG. 3A, the velocity limit 53 in thedirection of the object may remain at zero while the buffer distance 50is violated. Thereby, user authority will be limited such that usercontrol input (e.g. via the joystick) to move the marine vessel 10 inthe direction of the object will not be acted upon by the propulsionsystem 20. In other embodiments, the velocity limit 53 may be zero atthe buffer distance 50 and then become negative once the distance to theobject O is less than the buffer distance. In the scenario in FIG. 3B,the velocity limit 53 will become negative when the distance to theobject is less than 1.5 meters and may become progressively morenegative, increasing propulsion in the opposite direction of the objectin order to propel the vessel away from the object O. The control systemmay be configured such that the negative velocity limit 53 is convertedto a control command to effectuate a thrust away from the object O sothat the marine vessel 10 is maintained at least the buffer distance 50away from the object O.

As also illustrated in FIGS. 3A and 3B, a maximum propulsion authority54 may be utilized, which sets a maximum for the velocity limit 53. Themaximum propulsion authority 54 may be a predetermined value based onhandling, comfort, or safety metrics for the relevant mode of operationwhere the disclosed velocity control is implemented, such as in ajoysticking mode or a docking mode of operation where the controlalgorithms are configured to provide precise propulsion control of themarine vessel 10 operating at relatively low velocities. In the depictedexamples, the maximum propulsion authority 54 is 0.8 m/s; however,faster or slower maximum speeds may be implemented depending on thevessel configuration and the expected control demands for the relevantmode of operation. The +/−yaw propulsion directions may have a maximumpropulsion authority value in radians. Furthermore, different maximumpropulsion authority values may be associated with different directions.For instance, the maximum propulsion authority value for the positive Y,or forward, direction may be higher than the maximum propulsionauthority value for the negative Y, or backward, direction.

In one embodiment, the proximity sensor system, e.g., the proximitysensors 72-78 in concert with the sensor processor 70, may be configuredto generate a most important object (MIO) dataset identifying a selectset of closest proximity measurements. For example, the MIO dataset mayidentify distances in each of the six directions that a boat has controlauthority—+/−X, +/−Y, and +/−yaw directions—thereby informing thenavigation controller of navigation constraints based on the location ofobjects O around the marine vessel. For example, the closest proximitymeasurements may be identified based on one or more simplifiedtwo-dimensional vessel outlines representing the vessel hull. In such anembodiment, the MIO dataset may be calculated using the simplified boatprofile and low-computation-load geometry to generate the MIO datasetidentifying the closest proximity measurements in each possibledirection of movement of the marine vessel 10. In one embodiment, theMIO dataset includes six values specifying one closest proximitymeasurement in each of the +/−X directions, +/−Y directions, and +/−yawrotational directions.

In certain embodiments, the MIO dataset may always contain six valuesdefining the closest proximity measurements in each of theaforementioned directions of movement. Thus, if no proximitymeasurements are detected in a particular direction, then a defaultlarge number may be provided which will be interpreted as non-limitingin the respective direction. To provide just one example, the defaultdistance in the +/−yaw direction may be +/−180°. The navigationcontroller (e.g. controller 24) will interpret that default largerotation angle range to mean that the vessel can turn 180° withoutcolliding with any object in the yaw direction. In other embodiments,the default large number may be greater than 180° (even as large as360°), or may be smaller than 180°, such as 90°. The default large valuein the X and Y directions may be a large value, such as 10,000 meters,50,000 meters, or more. In any such case, the default distance is largeenough that the navigation controller will not limit any vessel movementbased on the relevant default MIO data point. In other embodiments, thesystem 20 may be configured such that less than six numbers may beprovided for the MIO dataset. Thus, where no proximity measurements 90are detected in a particular direction, a null value or no value may bereported as part of the MIO dataset.

As illustrated in FIG. 4, the two-dimensional vessel outline may berepresented as a set of Cartesian points defined with respect to a pointof navigation P_(n). For instance, the two-dimensional vessel outlinemay be a set of five points forming the shape of a pentagon aroundP_(n), where the center point (00) is the navigation point P_(n) (i.e.,the center of navigation) of the marine vessel. Referring to the exampleat FIG. 2, the three Cartesian points include the front point A,starboard corner point B, starboard back point C, the port corner pointB′, and the port back point C′.

In FIG. 4, the two-dimensional vessel outline 80 is presented withrespect to multiple proximity measurements 90. The four linearly-closestproximity measurements 90 _(+x), 90 _(−x), 90 _(+y), and 90 _(−y) aredetermined as the four closest proximity measurements in each directionalong the X-axis and the Y-axis, sequentially. For example, theproximity measurement with the minimum distance 86 in the positive Xdirection from the front-most point of the vessel model, the front pointA, is determined as the closest proximity measurement 90 _(+x). Theproximity measurement 90 with the minimum distance 87 in the negative Xdirection as measured along the X-axis from the X-value of the backpoints C and C′ is the closest proximity measurement 90 _(−x). Theproximity measurement 90 with the minimum distance 88 in along theY-axis from the Y-value of starboard points B and C is the closestproximity measurement 90 _(+y). The minimum distance 89 in the directionof the negative Y-axis from the Y-values of the port points B′ and C′ isthe closest proximity measurement 90 _(−y).

In addition to the linearly-closest proximity measurements,rotationally-closest proximity measurements may also be calculated,which are the closest proximity measurements in the positive yawdirection and the negative yaw direction. In other words, therotationally-closest proximity measurements include the point that willfirst touch the two-dimensional vessel outline 80 as it rotates aboutthe point of navigation P_(n) in the positive yaw direction (clockwise)and the point that will first touch the two-dimensional vessel outline80 as it rotates about P_(n) in the negative yaw direction(counterclockwise). The two rotationally-closest proximity measurementsmay be used to identify the yaw angles to which the marine vessel canrotate without colliding with an object. The smallest positive yaw angleand smallest negative yaw angle may be included in the MIO dataset sothat the vessel navigation controller can properly limit the movement ofthe marine vessel to avoid collision.

For those proximity measurements 90 near the marine vessel 10, at leastone yaw path will be calculated between the respective proximitymeasurement and one or more intersection points on the two-dimensionalvessel outline 80. Referring to FIG. 4, one or more yaw paths 81 will becalculated for each nearby proximity measurement 90, including each ofthe linearly-closest proximity measurements 90 _(+x), 90 _(−x), 90_(+y), and 90 _(−y). For each yaw path 81 determined for each proximitymeasurement 90, a yaw angle 85 is determined, which may be a positiveyaw angle or a negative yaw angle (depending on the path 81 ofrotation). The smallest positive and negative yaw angles 85 are includedin the MIO dataset as the closest positive yaw direction proximitymeasurement 90 _(+w) and the closest negative yaw direction proximitymeasurement 90 _(−w). For calculating the yaw path for each proximitymeasurement 90, a circle may be defined having a radius between thepoint of navigation P_(n) and the respective proximity measurement 90.FIG. 4 represents one such calculation, where the proximity measurementcircle is defined for calculating the yaw path 81. At least oneintersection point 81′ is identified between the proximity measurementpath 81 and the two-dimensional vessel outline 80.

Velocity limits are then calculated based on the MIO dataset providingthe closest proximity measurements in each of the +/−X direction, +/−Ydirection, and +/−yaw direction. For example, a velocity limit may becalculated for each point in the MIO dataset, thus resulting incontinual calculation of a velocity limit in each of the +/−Xdirections, +/−Y directions, and +/−yaw directions.

In FIG. 5A, the marine vessel 10 is shown approaching the object O_(d),which is a dock where multiple proximity measurements 90 are identifieddefining the dock. Several closest proximity measurements are alsoidentified, including a closest proximity measurement in the negative Xdirection 90 _(−x), a closest proximity measurement in the positive Ydirection 90 _(+y), and a closest proximity measurement in the +yawrotational direction 90 _(+w). As the marine vessel 10 approaches thedock O_(d), velocity limits are calculated based on those identifiedclosest proximity points. Three exemplary velocity limits areillustrated, which include a negative X direction velocity limit, thepositive Y direction velocity limit, and the positive yaw rotationalvelocity limit. For example, each velocity limit may be calculated usingthe velocity limit formula described above, where Δr is each distancemeasurement adjusted by the preset buffer distance 50. The formula canbe equally applied to rotational (yaw) velocity control by using angularvelocity and acceleration instead of linear velocity and acceleration.

In certain embodiments, the marine vessel may be configured toautonomously control the propulsion devices 12 a, 12 b to maintain atleast the predetermined buffer distance 50 between the marine vessel 10and an object O. Thus, where the buffer zone 51 is violated, therelevant controller executing velocity control software 25, thepropulsion controller, may generate instructions to the propulsiondevices 12 a, 12 b to move the marine vessel such that the buffer zone51 is not violated. Where an object O, such as a dock O_(d) or seawall,spans the length of the marine vessel 10, positive and negative yawdirection limits will come into play, where zero or negative yawvelocity limits in one or the other direction will result in propulsioncontrol instructions that rotate the marine vessel so as not to violatethe buffer zone 51.

The positive and negative yaw direction limits and control instructionsto maintain the buffer zone 51 will result in the marine vesselself-aligning with the object O, such as a seawall or a dock. Thepropulsion controller, such as the central controller 24 executingvelocity control software 25, will operate to rotate the marine vesselto align with the dock O_(d) because a thrust instruction causingrotation of the vessel will be generated if a portion of the marinevessel becomes closer to the object O_(d) and thus violates a portion ofthe buffer zone 51. In such an instance, the relevant yaw velocity limit90 _(+w), 90 _(−w) will become negative, which will result in a thrustinstruction to rotate the marine vessel to move the closest end of thevessel away from the object. Referring to FIG. 5A, if the velocity limit90 _(+w) becomes negative, then the marine vessel 10 will be rotatedcounterclockwise until the proximity measurement 90 _(+w) in thenegative yaw direction is at least the buffer distance from the relevantobject point. Thereby, the marine vessel 10 is caused to align with thelength of the dock O_(d) such that neither of the yaw velocity limitsare negative. Accordingly, with respect to the scenario depicted in FIG.5A, if an operator were to instruct lateral movement towards the objectO, such as by holding the joystick 30 laterally toward the dock O_(d),the propulsion controller would cause the marine vessel to self-alignwith the dock O_(d) and to maintain a clearance from the dock equal tothe preset buffer distance 50.

Similarly, where a marine vessel is being steered within a tight space,such as in a slip, the propulsion controller will operate to maintainthe buffer distance on all sides of the marine vessel where the object Oappears. Where the marine vessel is being positioned in a slip or asimilar tight space, the buffer distance on two sides of the marinevessel must be violated. The controller 70 implementing the autonomousthrust instructions based on negative velocity limits, as describedabove, will act to center the marine vessel 10 within the objectsappearing on either side. There, a negative thrust control will begenerated based on objects on opposing sides of the marine vessel, suchas both in the positive Y direction and the negative Y direction. Wherethe marine vessel ventures closer to the object on one side than theother, the negative thrust instruction in the opposite direction of thecloser side will be greater than that generated in the oppositeinstruction. Thus, the thrust instructions generated from the negativevelocity limits will only be executed if the marine vessel is closer toan object on one side than the other, and the velocity limits will tendto cancel each other out and cause the marine vessel to center withinthe objects on either side.

When the operator wants to suspend, or override, maintenance of thebuffer distance by the propulsion control system 20, the operatorprovides input, such as via a user input device on the operation console22. The user-generated instruction to suspend maintenance of the bufferdistance 50 may be by any user input device or system that allows theoperator to provide an intentional input that acknowledges that themarine vessel is near an object and that the operator intends tooverride the collision avoidance algorithm to allow the marine vessel toapproach and impact the object O. For example, one or more buttons 31may be provided on or near the joystick 30 that are depressible by theoperator to suspend maintenance of the buffer distance 50 from an objectO. In another embodiment, the user input option to suspend the buffermaintenance may be via the joystick, such as imposing a detent at somepoint in the movement range of the joystick 30 that the operator mustovercome to suspend maintenance of the buffer distance 50 and move themarine vessel toward the object O.

Alternatively, the user input may be provided by other means. Forexample, the display 29 on the operation console 22 may be configured topresent a user input option to the operator to suspend maintenance ofthe buffer distance 50 in one or all directions with respect to themarine vessel 10. In one embodiment, the display 29 may be controlled topresent a user input option to suspend maintenance of the bufferdistance 50 when the marine vessel is within a predetermined distance ofthe object O (e.g., dock O_(d)). In such an embodiment, the option tosuspend the buffer zone may be presented or otherwise available to theoperator when the marine vessel is at the buffer distance 50, or withina predetermined range of the buffer distance 50. In other embodiments,the option to suspend the buffer zone 51 entirely or the buffer distance50 in select directions may be available any time that the user inputauthority is being limited below the maximum propulsion authority 54.

In certain embodiments, the user input device may allow the user tospecify a portion, or side, of the marine vessel where the buffermaintenance will be suspended, or specify an object O that the marinevessel should be permitted to impact. For example, a user input devicemay allow an operator to select at least one of a port side, a starboardside, a rear side, or a front side of the marine vessel 10 at which thebuffer distance will no longer be maintained. To provide one example, adisplay on the operation console 22 may present a schematic of themarine vessel allowing an operator to select, such as via touching thescreen, one or more sides of the marine vessel where the control system20 will permit the buffer zone 51 to be violated. In another embodiment,multiple buttons 31 may be provided on or near the joystick 30, eachassociated with a side of the marine vessel 10. The buttons may beindividually selectable to allow the operator to select a side of themarine vessel where maintenance of the buffer distance 50 will besuspended by pushing the button 31 associated with that side.

In an embodiment where the user input device allows an operator, oruser, to select a location for suspension of the buffer distance 50, theuser-generated instruction provided to the control system by the userinput device will then specify the location for suspension selected bythe user. Only a portion of the buffer zone 51 will be suspended, andthe buffer distance 50 will be maintained on all other sides of themarine vessel as described above. Thereby, the control system 20 willact on the user control input to propel the marine vessel toward theobject O while still avoiding objects in the non-selected directions.Referring to FIG. 5A, for example, where the operator selects toapproach the dock O_(d) on the starboard side, the propulsion controllermay still operate to maintain the buffer distance between the dock andthe vessel 10 on the rear side (i.e., in the negative X direction).

Alternatively, the system 20 may be configured to suspend maintenance ofthe buffer zone 51 altogether such that the buffer distance 50 is nolonger maintained on any side of the marine vessel 10. In still otherembodiments, the control system 20 may be configured to automaticallydetermine which side to suspend the buffer distance 50 based on thedetected objects and the direction of the user control input directingpropulsion of the marine vessel. Thus, if the operator is providing apropulsion control input to move the marine vessel in the direction ofthe object O, and the object is within a predetermined distance, thepropulsion controller may interpret the user-generated instruction as aninstruction to suspend maintenance of the buffer distance 50 in thedirection of the object O.

In response to the user-generated override instruction, the controlsystem 20 will act on the user control input to propel the marine vesseltoward the object O and allow the marine vessel 10 to impact the objectO in a controlled way. In certain embodiments the propulsion controllermay continue to employ the velocity controls described herein to limitthe user input authority over how quickly the marine vessel 10 canapproach the object O. The propulsion controller may be configured tosuspend maintenance of a portion of the buffer zone 51 in response tothe user-generated instruction by changing the buffer distance on therespective side of the marine vessel. Thereby, the buffer distancealgorithm can continue to run and the buffer distance 50 will bemaintained on all other sides of the marine vessel, but the operatorwill have limited authority to approach and impact the object O.

FIG. 5B illustrates one such example employing the vessel outline 80.The modified buffer distance value 50′ on the starboard side 95 of thevessel outline 80 (which corresponds to the starboard side of the marinevessel 10) is changed from the original buffer distance 50. Thus, thevelocity limit calculations on the starboard side of the marine vesselwill permit the marine vessel 10 to approach and impact the dock O_(d).In the depicted embodiment, the modified buffer distance value 50′ onthe starboard side 95 is changed to a negative number such that the linefor that portion 51′ of the corresponding side buffer zone 51 is movedto inside the starboard side of the marine vessel 10. Thereby, themodified buffer distance value 50′ gets added to the proximitymeasurements 90 for the object O_(d) on that side of the marine vessel10. This essentially makes the control system think that the dock O_(d)is further away than it actually is and to calculate the velocity limitsaccordingly. While limited, the operator still has propulsion authorityto move the marine vessel 10 toward the object O, even when the marinevessel is contacting the object. The greater the magnitude of themodified buffer distance value 50′, and thus the further inward from thestarboard side 95 of the vessel outline 80, the more authority will beavailable to the operator, or user, to allow the marine vessel 10 toapproach and impact the object O_(d).

In other embodiments, the modified buffer distance value 50′ on theselected side 95 of the marine vessel may be changed to zero. This putsthe buffer distance exactly at the starboard side 95 of the vesseloutline 80. In such an embodiment, the velocity limit will be zero atthe point where the starboard side 95 reaches the edge of the objectO_(d). Thus, when the proximity sensor system determines that thedistance between the marine vessel 10 (e.g. represented by the vesseloutline 80) is zero, the operator will not have any authority to movethe marine vessel 10 further toward or against the object O. Such anembodiment may be insufficient for certain vessel configurations or dockconfigurations, where the portion of the marine vessel 10 from whichpassengers embark and disembark may not be close enough to the dockO_(d). In those situations, providing a negative modified bufferdistance value 50′ may be more desirable so that the operator, or user,has some authority to maintain the marine vessel 10 against the dockO_(d). Exemplary methods for calculation of velocity limit control andimplementation of a user-generated instruction to suspend maintenance ofthe buffer distance are presented and described below with respect toFIGS. 6 and 7.

In certain embodiments, an alert may be generated notifying the userthat the buffer distance is no longer being maintained. The alert may,for example, specify the direction or side of the vessel where thebuffer distance 50 is modified or eliminated, thereby advising the userthat collision with an object on that side is possible or likely. Invarious examples, the alert may be provided via the display 29, such asa text or graphic alert displayed thereon. Alternatively oradditionally, the alert may be provided via the joystick, such as byhaptic and/or visual means. For example, the joystick may include one ormore light indicators that illuminate to correspond with and indicatethe side(s) of the vessel where the buffer distance is no longer beingmaintained.

The velocity limit calculation is executed by one or more controllerswith the control system 20. Referring again to FIG. 1, the sensorprocessor 70 receives the proximity measurement from each of theproximity sensors 72-78, and in such an embodiment may be configuredwith software to perform the MIO dataset identification and may providethe MIO dataset to a controller performing the velocity limitcalculation. The controller performing the velocity limit calculation isreferred to herein as the propulsion controller, which may be anycontroller configured to execute velocity control software 25 havingcomputer-executable instructions to cause that controller to perform asdescribed herein. In FIG. 1, the propulsion controller may be, forexample, the CCM 24 storing and executing velocity control softwareinstructions 25. In such an embodiment, each of the sensor processor 70and the central controller 24 includes its own storage system comprisingmemory and its own processing system that executes programs and accessesdata stored in the respective storage system.

In other embodiments, the sensor processor 70 may store and execute thevelocity control software 25 and thus may perform as the propulsioncontroller. In still other embodiments, a dedicated, special-purposepropulsion controller may be provided, such as a computing systemstoring and executing the velocity control software 25 and configured toreceive proximity measurements, such as from the sensor processor 70,and to output velocity limits, which in various embodiments may beprovided to the CCM 24 or to each PCM 26 a, 26 b. In still otherembodiments, the proximity assessment functionality described herein asbelonging to the sensor processor 70 and the velocity controlfunctionality may both be performed by a single controller, such as thecentral controller 24.

Given the large amount of proximity data produced by the proximitysensors 72-78, the connection between the sensors 72-78 and the sensorprocessor 70 may be via a dedicated bus or network connection. Thisdedicated bus or network connection is separate from the vessel networkin order to allow transmission of a large amount of proximitymeasurement data (and, in some embodiments, IMU data) to the sensorprocessor 70. Such massive data transmission may not be possible on atypical vessel network, such as a CAN bus or wireless network wheremultiple devices are communicating. The sensor processor 70 may beconfigured to communicate filtered proximity data on the vessel network,such as a CAN bus or wireless network, such as the MIO dataset. In stillother embodiments, a dedicated communication link may be providedbetween the sensor processor 70 and the propulsion controller, such asthe central controller 24.

FIG. 6 depicts one embodiment of a propulsion control method 100implementing proximity-based velocity limiting as described herein. Sixclosest proximity measurement values are provided, one in each of the+/−X direction, +/−Y direction, and +/−yaw direction. The preset bufferdistance 50, or “minimum range” that must be maintained from an object,is defined and provided, where the linear range limit is provided atblock 103 and the rotational range limit is provided at block 104. Inthe example, the linear range limit is 5 m. Note that the range limit inthe angular direction is an angular measurement, which in the example is0.45 radians. The minimum range is then either added or subtracted fromthe respective distance value depending on the direction (and thus thesign) of the respective distance value. Summing blocks 105 a-105 f areeach configured to assign the appropriate sign to the preset buffervalue.

The velocity limit is then calculated accordingly based on the distancevalues and the maximum acceleration set for the marine vessel. In theexample, the linear maximum acceleration is 0.05 m/s² and the angularacceleration limit is 0.01 rad/s². The maximum linear acceleration isprovided to each of blocks 107 a-107 d, which is the maximumacceleration in the relevant Cartesian direction. Similarly, the maximumangular acceleration is provided to each of blocks 107 e and 107 f,which is the maximum acceleration in the relevant positive or negativeyaw direction. At block 107 the relevant distance range (e.g. Δrdescribed above) is multiplied by the corresponding maximumacceleration. Before the absolute value is taken of the outputs atblocks 110 a-110 f, the sign of the relevant velocity calculation isdetermined at signum function blocks 109 a-109 f. The square root of theabsolute value is then calculated at blocks 111 a-111 f. The velocitylimit is then determined at blocks 112 a-11 f for each of the sixdirections, and all six velocity limit values 113 a-113 f are outputtedat block 114.

FIG. 7 depicts an exemplary method 120 of velocity limit implementation.FIG. 7 exemplifies velocity command determination in the positive andnegative X directions based on the +/−X velocity limits 113 a and 113 b.The velocity limit is calculated based on the user control input 122,such as via the joystick 30. In the depicted example, a positive ornegative X-direction propulsion command is determined based on the usercontrol input 122 (which in the depicted embodiment is an initialvelocity value associated with the joystick position), +/−X velocitylimits 113 a and 113 b, and the maximum propulsion authority values 124a and 124 b in the positive and negative X directions. If the usercontrol input 122 is positive, then a positive X direction propulsioncommand is generated; if the user control input 122 is negative, then anegative X direction command is generated. In the depicted example, thevelocity limit values 113 a-113 f are unbounded values calculated basedon the respective closest proximity measurement. The calculated velocitylimits 113 a or 113 b is limited, or capped, based on the maximumpropulsion authority 124 a, 124 b at blocks 125 a, 125 b and 126 a, 126b. In particular, a capped velocity limit in the positive X direction iscalculated at blocks 125 a and 125 b. At block 125 a, the velocity limitis bounded by both the positive and negative X-direction authorityvalues 124 a and 125 b, meaning that the velocity limit outputted fromblock 125 a may be negative where the marine vessel is less than thebuffer distance from the object. At block 125 b, however, the velocitylimit is bounded between the maximum authority 124 a in the positive Xdirection and zero, meaning that the outputted velocity limit will bezero when the proximity measurements are less than or equal to thebuffer distance. The negative X direction capped velocity limitdeterminations are similar, where capped velocity limits in the negativeX direction are calculated at blocks 126 a and 126 b. Note that theoutput of block 126 b will be negative or zero depending on whether theproximity values are outside or inside the buffer zone, and the outputof block 126 a may be negative, zero, or positive depending on whetherthe proximity values are outside, at, or inside the buffer zone.

The outputs of blocks 125 b and 126 b, which are the zero-boundedvelocity limits, are provided to block 135, where they are implementedto limit the user control input 122. Depending on the sign of the usercontrol input 122, either one of the positive velocity limit 125 b orthe negative velocity limit 126 b is used at block 135 to limit the userinput authority. The resulting velocity command based on the usercontrol input 122 is outputted at block 136. In an embodiment where noautonomous control is implemented, only this zero-bounded portion of thecontrol diagram may be implemented to deprive the user authority to movethe marine vessel closer to the object O than is permitted.

In an embodiment where autonomous control is provided, the output ofblocks 125 a and 126 a may be utilized to determine an autonomousvelocity command. The outputs of blocks 125 a and 125 b or 126 a and 126b are summed at blocks 127 and 128, respectively. If the buffer zone isnot violated, then the outputs of the summed blocks will cancel eachother out and the output of the summation blocks 127 and 128 will bezero. If the output of the summation block 127, 128 is non-zero, thenthe buffer zone has been violated and a propulsion command is calculatedto move the marine vessel away from the object. The absolute value ofthe respective summed output is determined at blocks 129 and 130, and anegative gain is applied at blocks 131 and 132. Blocks 133 and 134 areprovided to implement a user override, where the autonomous propulsioncontrol to actively maintain the buffer distance is suspended when theuser-generated instruction 121 is active, or positive, by setting theoutput of blocks 133 and 134 to zero. Assuming that the user-generatedinstruction 121 is not active, the output of block 133 or 134 (whicheveris nonzero) is provided to block 137, which reapplies the relevant signto generate a propulsion command in the correct direction. The resultingpropulsion command is outputted at block 139.

Thus, in embodiments where the buffer distance is modified in responseto the user-generated instruction 121, the control algorithm continuesto operate the same. However, on the side where the buffer distance ischanged, the modified buffer distance value 50′ will be a negativenumber and will be additive to the proximity measurement O_(d). Thereby,the calculated velocity limit 113 on the relevant side (e.g. thestarboard side in the example of FIG. 5B) may be higher than thevelocity limits in the other directions such that the marine vessel 10will be allowed to approach and impact the object on the relevant sidein response to user control inputs to move the marine vessel in thedirection of the object. In other embodiments, the control system mayoperate differently in response to the user-generated instruction tosuspend maintenance of the buffer distance 50. For example, thepropulsion controller (e.g. CCM 24) may be configured to apply a presetvelocity limit for operation within the buffer zone in response to theuser-generated instruction. In such an embodiment, the preset velocitylimit will be relatively low so as to provide a controlled approach andimpact with the object O_(d).

One such embodiment may be by scaling and/or offsetting the user controlinput via the user input device, such as the joystick 30. For instance,the user control input 122 from the joystick 30 may be multiplied by apercentage, such as 20%. Thereby, the imposed velocity limit would be20% of the maximum velocity associated with the maximum joystickposition. In certain embodiments, the rescaled output may only beapplied in the direction of the object O, and user input commands inother directions (such as away from the object O) may be providedwithout such limitations.

FIG. 8 schematically illustrates an offset and rescale of the joystickinput. An offset is applied such that no propulsion output is generatedfor an inner portion 141, 142 of the joystick range. Thus, movement ofthe joystick 30 within that inner range 141, 142 will not result inproduction of any thrust output. The outer joystick range 143, 144 isthen rescaled to provide a lesser velocity command than normallyassociated with those joystick positions. In the depicted embodiment,the inner range 141, 142 is 80% of the total joystick range, and theremaining 20% of the outer joystick range 143, 144 is rescaled toprovide zero to 20% of the normal velocity command. Thus, only operationof the joystick in the outer range 143, 144 provides a correspondingvelocity command, which will be significantly limited compared to thevelocity commands normally associated with that outer range.

This written description uses examples to disclose the invention,including the best mode, and also to enable any person skilled in theart to make and use the invention. Certain terms have been used forbrevity, clarity, and understanding. No unnecessary limitations are tobe inferred therefrom beyond the requirement of the prior art becausesuch terms are used for descriptive purposes only and are intended to bebroadly construed. The patentable scope of the invention is defined bythe claims and may include other examples that occur to those skilled inthe art. Such other examples are intended to be within the scope of theclaims if they have features or structural elements that do not differfrom the literal language of the claims, or if they include equivalentfeatures or structural elements with insubstantial differences from theliteral languages of the claims.

We claim:
 1. A method of controlling propulsion of a marine vessel, themethod comprising: receiving proximity measurements from one or moreproximity sensors on the marine vessel; limiting user input authorityover propulsion output in a direction of an object by at least onepropulsion device based on the proximity measurements so as to maintainthe marine vessel at least a buffer distance from the object; suspendingthe maintenance of the buffer distance from the object in response to auser-generated instruction; receiving user control input via a userinput device to move the marine vessel in the direction of the object;and controlling the at least one propulsion device based on the usercontrol input such that the marine vessel approaches and impacts theobject.
 2. The method of claim 1, further comprising, prior tosuspending the maintenance of the buffer distance in response to theuser-generated instruction, requiring that the marine vessel is within apredetermined distance from the object based on the proximitymeasurements.
 3. The method of claim 2, further comprising generating analert notifying the user that the buffer distance is no longermaintained.
 4. The method of claim 1, wherein suspending the maintenanceof the buffer distance in response to the user-generated instructionincludes suspending the maintenance of the buffer distance only in thedirection of the object.
 5. The method of claim 1, wherein theuser-generated instruction specifies a direction with respect to themarine vessel, and wherein suspending the maintenance of the bufferdistance includes suspending the maintenance of the buffer distance onlyin the direction specified by the user-generated instruction.
 6. Themethod of claim 5, further comprising controlling a user input device topresent a user input option to select at least one of a port side, astarboard side, a rear side, or a front side of the marine vessel forsuspending the maintenance of the buffer distance; and wherein theuser-generated instruction specifies at least a selected one of the portside, the starboard side, the rear side, or the front side of the marinevessel.
 7. The method of claim 1, wherein controlling the at least onepropulsion device based on the user control input such that the marinevessel approaches and impacts the object includes limiting user inputauthority over propulsion output in the direction of the object.
 8. Themethod of claim 7, wherein limiting user input authority over thepropulsion output in the direction of the object includes imposing avelocity limit in the direction of the object based on the proximitymeasurements so as to progressively decrease the velocity limit as themarine vessel approaches the object.
 9. The method of claim 8, whereinlimiting the user input authority so as to maintain the marine vessel atleast a buffer distance from the object includes imposing a velocitylimit of zero in the direction of the object when the marine vessel isat the buffer distance from the object, and further comprising: uponreceiving the user-generated instruction to suspend the maintenance ofthe buffer distance, setting a modified buffer distance value on atleast one side of the marine vessel; recalculating the velocity limitbased on the modified buffer distance value; and controlling the atleast one propulsion device based on the user control input and therecalculated velocity limit.
 10. The method of claim 9, wherein themodified buffer distance value is a negative number.
 11. The method ofclaim 1, wherein the input device is a joystick, and wherein controllingthe at least one propulsion device based on the user control inputincludes rescaling the user control inputs from the joystick to limitthe user input authority.
 12. The method of claim 11, wherein thecontrolling the at least one propulsion device based on the user controlinput further includes applying an offset to the user control input fromthe joystick such that no propulsion output is generated for a portionof a joystick range.
 13. A propulsion control system on a marine vessel,the propulsion control system comprising: at least one propulsion deviceconfigured to propel the marine vessel; at least one input devicemanipulatable to provide user control input to control a movementdirection and velocity of the marine vessel; at least one proximitysensor system configured to generate proximity measurements describing aproximity of an object with respect to the marine vessel; a controllerconfigured to: limit user input authority over propulsion output in adirection of the object by at least one propulsion device based on theproximity measurements so as to maintain the marine vessel at least abuffer distance from the object; receive a user-generated instruction tosuspend the maintenance of the buffer distance from the object; receiveuser control input via the user input device to move the marine vesselin the direction of the object; and control the at least one propulsiondevice based on the user control input such that the marine vesselapproaches and impacts the object.
 14. The system of claim 13, whereinthe user-generated instruction specifies a direction with respect to themarine vessel, wherein the controller is further configured to suspendthe maintenance of the buffer distance only in the direction specifiedby the user-generated instruction.
 15. The system of claim 13, whereinthe controller is further configured to suspend the maintenance of thebuffer distance only in the direction of the object.
 16. The system ofclaim 13, wherein the controller is further configured to, prior tosuspending the maintenance of the buffer distance in response to theuser-generated instruction, require that marine vessel is within apredetermined distance from the object based on the proximitymeasurements.
 17. The system of claim 13, wherein the controller isfurther configured to present a user input option to select at least oneof a port side, a starboard side, a rear side, or a front side of themarine vessel for suspending the maintenance of the buffer distance; andwherein the user-generated instruction specifies at least a selected oneof the port side, the starboard side, the rear side, or the front sideof the marine vessel.
 18. The system of claim 13, wherein limiting theuser input authority in the direction of the object includes imposing avelocity limit in the direction of the object based on the proximitymeasurements and a buffer distance value; and wherein the controller isfurther configured to limit the user input authority over propulsionoutput in the direction of the object as the marine vessel approachesand impacts the object.
 19. The system of claim 18, wherein thecontroller is further configured to: upon receiving the user-generatedinstruction to suspend the maintenance of the buffer distance, set amodified buffer distance value on at least one side of the marine vesselwherein the modified buffer distance value is zero or a negative number;recalculate the velocity limit based on the modified buffer distancevalue; and control the at least one propulsion device based on the usercontrol input and the recalculated velocity limit.
 20. The system ofclaim 13, wherein the input device is a joystick, and wherein thecontroller is further configured to, upon receiving the user-generatedinstruction, rescale the user control input from the joystick to limitthe user input authority in the direction of the object.